<html>
    <head>
        <title>其他功能属性</title>
    </head>
    <body>
        <script>
            /*
                 2、其他功能属性  
                                
                                        虽然这些最小定义足以是功能系统正常工作，但你可以为功能指定可选的属性：

                                            ①、DisplayName：  用于在用户交互界面上显示功能名称的可本地化字符串。

                                            ②、Description： 用于描述功能的较长可本地化文本。

                                            ③、ValueType: 功能值得类型。   可以是实现IStringValueType 的类。

                                                            ToggleStringValueType：用于定义true/false，on/off，enabled/disabled样式功能。UI上显示一个复选框。

                                                            FreeTextStringValueType：用于定义自由文本值。UI上显示一个文本框。

                                                            SelectionStringValueType：用于强制从列表中选择值。UI上显示下拉列表。

                                            ④、IsVisibleToClients（默认值：true）：
                                                    
                                                        设置false以向客户端（浏览器）隐藏此功能的值。与客户端共享该值有助于他们根据特征值有条件地显示/隐藏/更改UI部分。

                                            ⑤、Properties：
                                                        用于设置/获取与此功能相关的任意键值对的字典。这可以是自定义的一个点。


                                        因此，基于这些描述，最好定义这些功能，如下所示：
                                                                
                                                    using FeaturesDemo.Localization;
                                                    using Volo.Abp.Features;
                                                    using Volo.Abp.Localization;
                                                    using Volo.Abp.Validation.StringValues;

                                                    namespace FeaturesDemo
                                                    {
                                                        public class MyFeatureDefinitionProvider : FeatureDefinitionProvider
                                                        {
                                                            public override void Define(IFeatureDefinitionContext context)
                                                            {
                                                                var myGroup = context.AddGroup("MyApp");

                                                                myGroup.AddFeature(
                                                                    "MyApp.PdfReporting",
                                                                    defaultValue: "false",
                                                                    displayName: LocalizableString
                                                                                    .Create<FeaturesDemoResource>("PdfReporting"),  // FeaturesDemoResource是此示例代码中的项目名称。有关本地化系统的详细信息，请参阅本地化文档。
                                                                    valueType: new ToggleStringValueType()
                                                                );

                                                                myGroup.AddFeature(
                                                                    "MyApp.MaxProductCount",
                                                                    defaultValue: "10",
                                                                    displayName: LocalizableString
                                                                                    .Create<FeaturesDemoResource>("MaxProductCount"),
                                                                    valueType: new FreeTextStringValueType(
                                                                                new NumericValueValidator(0, 1000000))

                                                                                第一个功能设置为ToggleStringValueType，而第二个功能设置为FreeTextStringValueType，带有一个数字验证器，允许从0到1,000,000的值。
                                                                );
                                                            }
                                                        }
                                                    }   

                                        请记住在本地化文件中定义本地化键：

                                                    "PdfReporting": "PDF Reporting",
                                                    "MaxProductCount": "Maximum number of products"
            */
        </script>
    </body>
</html>